# 高通QSDK 内核阶段11.4升级12.2方法 ## 概述 由于QSDK11.4升级12.2,需要同时升级uboot和kernel,为了不拆机接串口线,下面方法介绍在11.4版本内核启动后,如何升级为12.2。 **注意:**下面演示,硬件版本必须为cp01-c3,如果为cp01-c2或者其他 请谨慎(设备树适配问题)。 需要准备: 1. `openwrt-ipq6018-u-boot.mbn`:QSDK12.2版本编译出来的uboot镜像 2. `bootloadenv.bin`:QSDK12.2环境变量,该文件非必须。只有板子型号为cp01-c2才需要 3. `norplusnand-ipq6018-apps.img`:QSDK12.2版本编译出来的 kernel+dtb+文件系统 镜像 ## 烧录步骤 1. 第一步:确定板子型号是不是cp01-c3或者cp01-c2 ```bash cat /tmp/sysinfo/board_name ``` 2. 第二步:确定uboot分区 ```bash cat /proc/mtd #打印出来找到下面两个分区为mtd13和mtd14 mtd13: 000a0000 00010000 "0:APPSBL_1" mtd14: 000a0000 00010000 "0:APPSBL" ``` 3. 第三步:拷贝`openwrt-ipq6018-u-boot.mbn` 到板子/tmp目录下 ```bash scp bin/ipq/openwrt-ipq6018-u-boot.mbn root@192.168.50.1:/tmp ``` 4. 第四步:烧录uboot到mtd13 和 mtd14分区,这里需要根据第二步,一定要确定好分区号 **注意:**烧录uboot分区后不要重启设备 ```bash dd if=/tmp/openwrt-ipq6018-u-boot.mbn bs=1 conv=sync | mtd -e "/dev/mtd13" write - "/dev/mtd13" dd if=/tmp/openwrt-ipq6018-u-boot.mbn bs=1 conv=sync | mtd -e "/dev/mtd14" write - "/dev/mtd14" ``` 5. 第五步:如果板子型号不是cp01-c3的话 需要烧录下环境变量的分区 执行`cat /proc/mtd` 确定 ```bash 1. mtd12: 00010000 00010000 "0:APPSBLENV" ``` ```bash dd if=/tmp/bootloadenv.bin bs=1 conv=sync | mtd -e "/dev/mtd12" write - "/dev/mtd12" ``` **注意:**该步骤请谨慎操作。 6. 第5步 用网页烧录 `norplusnand-ipq6018-apps.img` 不要保留配置,烧录完成后会自动重启。